perm filename MEMO.DOC[NET,KMC] blob sn#166720 filedate 1975-06-27 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	00100	THIS FILE IS MLISP.DOC[213,203] AT UCLA
C00004 00003	00100	The following are the steps necessary to create an MLISP system under
C00008 ENDMK
CāŠ—;
00100	THIS FILE IS MLISP.DOC[213,203] AT UCLA
00200	SPECIFIC COMMENTS ON PUTTING MLISP TOGETHER ON CCBS
00300	
00400	TRY THIS ALLOCATION:
00500	 R LISP 42
00600	 Y2000 14000    (CR)
00700	DO2 HAS THE CURRENT FILE.   AFTER STARTING LISP, (DSKIN DO2) THEN (PXPX)
00800	  THEN (INIT1)  SCAN$ (INIT2)  AS STATED BELOW.
00900	
01000	WHEN LISP READS IN UTILS, IT HANGS UP WHEN IT GETS TO FORM FEED.
01100	  TO GET IT GOING, DO (CTRL)L  .  
01200	
01300	DOING SSAVE SAVES THE UPPER SEGMENT UNPROTECTED, 
01400	  SO THE DO FILE "DO" SHOULD WORK RIGHT.
01500	
01600	PPRINT HAS LISP OF PPRINT.MLI AND MACRO1.MLI.
01700	
01800	NOW IF WE WANT TO SPEED THE TWO-PASS PROCESS UP:
01900	  (IT IS CURRENTLY SLOW BECAUSE THE MACROS ARE EXPANDED
02000	  WHILE PRETTY-PRINTING, MAKING OUTPUT FROM MLISP
02100	  AND INPUT TO COMPL OVERBEARING)
02200	THE TRICK IS AS FOLLOWS:
02300	
02400	  LOAD INTO COMPLR: (MACROS.LSP) AND (PPRINT.LAP)
02500	
02600	OR THE PART OF PPRINT THAT CAME FROM MACRO1.MLI
02700	 THEN TAKE MACROS.LSP OUT OF MLISP.
02800	
     
00100	The following are the steps necessary to create an MLISP system under
00200	UCI LISP.
00300	
00400	
00500	(1) Compile the files MLISP, RUNFN1, RUNFN2, PPRINT
00600	    using the standard UCI LISP compiler.
00700	
00800	
00900	(2) Assemble the machine language scanner (c.f. the MLISP manual)
01000	    using the standard DEC MACRO assembler; e.g.
01100		COMPILE SCAN.MAC <cr>
01200	
01300	
01400	(3) Load the resulting LAP and REL files by:
01500		R ILISP 22 <cr>			Note: <cr> = carriage return
01600		Y1000_4000___<cr>			_  = space
01700		(EXIT) <cr>
01800		SSAVE MLISP <cr>
01900	
02000		RUN MLISP <cr>
02100		(HGHCOR 6000) (SETSYS DSK: MLISP) <cr>
02200		(SETQ SAVORG BPORG) (SETQ BPORG (HGHORG NIL)) <cr>
02300		(SETQ SAVEND BPEND) (SETQ BPEND (HGHEND)) <cr>
02400		(DSKIN (MLISP.LAP) (RUNFN1.LAP) (MACROS.LSP)(PPRINT.LAP) MINIT UTILS) <cr>
02500		(HGHORG BPORG) (SETQ BPORG SAVORG) (SETQ BPEND SAVEND) <cr>
02600		(INIT1) <cr>
02700		DSK:SCAN <altmode>
02800		(INIT2) <cr>
02900		(EXIT) <cr>
03000		SSAVE MLISP <cr>
03100	
03200	
03300	(4) Create a file (UTILS) of MLISP runtime functions containg the files
03400	    RUNFN2.LAP and SETQS; e.g.
03500		COPY UTILS ← RUNFN2.LAP,SETQS <cr>
03600	
03700	
03800	If the machine language scanner cannot be used (for any reason), the
03900	LISP version -- three times slower -- may have to be used.  See the
04000	MLISP manual for instructions.
04100	
04200	All files with extension MLI are MLISP versions of the corresponding
04300	LISP files; e.g. RUNFN1.MLI is the MLISP version of the LISP file RUNFN1.
04400	Since they are in the MLISP notation, these MLI files make the translator
04500	easier to understand.  They also provide examples of MLISP programs.
04600	
04700	The file MEXPR.MLI is the reverse LISP → MLISP translator.
04800	
04900	The files in the MLISP system:
05000		LISP file	MLISP file(s)
05100	
05200		MLISP		MLISP.MLI
05300		RUNFN1		RUNFN1.MLI
05400		RUNFN2		RUNFN2.MLI
05500		PPRINT		PPRINT.MLI, MACRO1.MLI
05600	     MACROS.LSP       MACROS.MLI
05700		MINIT
05800		SETQS
05900				MEXPR.MLI
06000		SCAN.MAC			(machine language scanner -- MACRO file)
06100		SCAN		SCAN.MLI	(LISP scanner, if necessary)
06200		MEMO				(this file)